/*******************************************************************************
 * Copyright (c) 2022 BestSolution.at and others.
 *  
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v.2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0.
 *  
 * SPDX-License-Identifier: EPL-2.0
 *  
 * Contributors:
 *     BestSolution.at - initial API and implementation
 *******************************************************************************/
/*
 * generated by Xtext
 */
package org.eclipse.fx.code.editor.ldef.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class LDefGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class RootElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Root");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPackageKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Assignment cImportsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cImportsImportParserRuleCall_2_0 = (RuleCall)cImportsAssignment_2.eContents().get(0);
		private final Assignment cLanguageDefinitionAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLanguageDefinitionLanguageDefParserRuleCall_3_0 = (RuleCall)cLanguageDefinitionAssignment_3.eContents().get(0);
		
		//Root:
		//	'package' name=QualifiedName
		//	imports+=Import*
		//	languageDefinition=LanguageDef;
		@Override public ParserRule getRule() { return rule; }

		//'package' name=QualifiedName imports+=Import* languageDefinition=LanguageDef
		public Group getGroup() { return cGroup; }

		//'package'
		public Keyword getPackageKeyword_0() { return cPackageKeyword_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

		//imports+=Import*
		public Assignment getImportsAssignment_2() { return cImportsAssignment_2; }

		//Import
		public RuleCall getImportsImportParserRuleCall_2_0() { return cImportsImportParserRuleCall_2_0; }

		//languageDefinition=LanguageDef
		public Assignment getLanguageDefinitionAssignment_3() { return cLanguageDefinitionAssignment_3; }

		//LanguageDef
		public RuleCall getLanguageDefinitionLanguageDefParserRuleCall_3_0() { return cLanguageDefinitionLanguageDefParserRuleCall_3_0; }
	}

	public class ValidIDElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ValidID");
		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
		
		//ValidID:
		//	ID;
		@Override public ParserRule getRule() { return rule; }

		//ID
		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
	}

	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.QualifiedName");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//QualifiedName:
		//	ValidID (=> '.' ValidID)*;
		@Override public ParserRule getRule() { return rule; }

		//ValidID (=> '.' ValidID)*
		public Group getGroup() { return cGroup; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }

		//(=> '.' ValidID)*
		public Group getGroup_1() { return cGroup_1; }

		//=> '.'
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
	}

	public class QualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.QualifiedNameWithWildCard");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cQualifiedNameParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Keyword cAsteriskKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
		
		//QualifiedNameWithWildCard:
		//	QualifiedName ('.' '*')?;
		@Override public ParserRule getRule() { return rule; }

		//QualifiedName ('.' '*')?
		public Group getGroup() { return cGroup; }

		//QualifiedName
		public RuleCall getQualifiedNameParserRuleCall_0() { return cQualifiedNameParserRuleCall_0; }

		//('.' '*')?
		public Group getGroup_1() { return cGroup_1; }

		//'.'
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//'*'
		public Keyword getAsteriskKeyword_1_1() { return cAsteriskKeyword_1_1; }
	}

	public class ImportElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Import");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
		
		//Import:
		//	'import' importedNamespace=QualifiedNameWithWildCard;
		@Override public ParserRule getRule() { return rule; }

		//'import' importedNamespace=QualifiedNameWithWildCard
		public Group getGroup() { return cGroup; }

		//'import'
		public Keyword getImportKeyword_0() { return cImportKeyword_0; }

		//importedNamespace=QualifiedNameWithWildCard
		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }

		//QualifiedNameWithWildCard
		public RuleCall getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0; }
	}

	public class LanguageDefElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.LanguageDef");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cParitioningAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cParitioningParitioningParserRuleCall_2_0 = (RuleCall)cParitioningAssignment_2.eContents().get(0);
		private final Assignment cLexicalHighlightingAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLexicalHighlightingLexicalHighlightingParserRuleCall_3_0 = (RuleCall)cLexicalHighlightingAssignment_3.eContents().get(0);
		private final Assignment cIntegrationAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cIntegrationIntegrationParserRuleCall_4_0 = (RuleCall)cIntegrationAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//LanguageDef:
		//	name=ID '{'
		//	paritioning=Paritioning
		//	lexicalHighlighting=LexicalHighlighting
		//	integration=Integration?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//name=ID '{' paritioning=Paritioning lexicalHighlighting=LexicalHighlighting integration=Integration? '}'
		public Group getGroup() { return cGroup; }

		//name=ID
		public Assignment getNameAssignment_0() { return cNameAssignment_0; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//paritioning=Paritioning
		public Assignment getParitioningAssignment_2() { return cParitioningAssignment_2; }

		//Paritioning
		public RuleCall getParitioningParitioningParserRuleCall_2_0() { return cParitioningParitioningParserRuleCall_2_0; }

		//lexicalHighlighting=LexicalHighlighting
		public Assignment getLexicalHighlightingAssignment_3() { return cLexicalHighlightingAssignment_3; }

		//LexicalHighlighting
		public RuleCall getLexicalHighlightingLexicalHighlightingParserRuleCall_3_0() { return cLexicalHighlightingLexicalHighlightingParserRuleCall_3_0; }

		//integration=Integration?
		public Assignment getIntegrationAssignment_4() { return cIntegrationAssignment_4; }

		//Integration
		public RuleCall getIntegrationIntegrationParserRuleCall_4_0() { return cIntegrationIntegrationParserRuleCall_4_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class IntegrationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Integration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIntegrationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cCodeIntegrationListAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCodeIntegrationListCodeIntegrationParserRuleCall_2_0 = (RuleCall)cCodeIntegrationListAssignment_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//Integration:
		//	'integration' '{'
		//	codeIntegrationList+=CodeIntegration+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'integration' '{' codeIntegrationList+=CodeIntegration+ '}'
		public Group getGroup() { return cGroup; }

		//'integration'
		public Keyword getIntegrationKeyword_0() { return cIntegrationKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//codeIntegrationList+=CodeIntegration+
		public Assignment getCodeIntegrationListAssignment_2() { return cCodeIntegrationListAssignment_2; }

		//CodeIntegration
		public RuleCall getCodeIntegrationListCodeIntegrationParserRuleCall_2_0() { return cCodeIntegrationListCodeIntegrationParserRuleCall_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class CodeIntegrationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.CodeIntegration");
		private final RuleCall cJavaFXIntegrationParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//CodeIntegration:
		//	JavaFXIntegration // | SWTIntegration
		//;
		@Override public ParserRule getRule() { return rule; }

		//JavaFXIntegration
		public RuleCall getJavaFXIntegrationParserRuleCall() { return cJavaFXIntegrationParserRuleCall; }
	}

	public class JavaFXIntegrationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.JavaFXIntegration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cJavafxKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cCodegenerationListAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCodegenerationListCodegenerationParserRuleCall_2_0 = (RuleCall)cCodegenerationListAssignment_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//JavaFXIntegration:
		//	'javafx' '{'
		//	codegenerationList+=Codegeneration+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'javafx' '{' codegenerationList+=Codegeneration+ '}'
		public Group getGroup() { return cGroup; }

		//'javafx'
		public Keyword getJavafxKeyword_0() { return cJavafxKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//codegenerationList+=Codegeneration+
		public Assignment getCodegenerationListAssignment_2() { return cCodegenerationListAssignment_2; }

		//Codegeneration
		public RuleCall getCodegenerationListCodegenerationParserRuleCall_2_0() { return cCodegenerationListCodegenerationParserRuleCall_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class CodegenerationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Codegeneration");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cJavaCodeGenerationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cE4CodeGenerationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Codegeneration:
		//	JavaCodeGeneration | E4CodeGeneration;
		@Override public ParserRule getRule() { return rule; }

		//JavaCodeGeneration | E4CodeGeneration
		public Alternatives getAlternatives() { return cAlternatives; }

		//JavaCodeGeneration
		public RuleCall getJavaCodeGenerationParserRuleCall_0() { return cJavaCodeGenerationParserRuleCall_0; }

		//E4CodeGeneration
		public RuleCall getE4CodeGenerationParserRuleCall_1() { return cE4CodeGenerationParserRuleCall_1; }
	}

	public class JavaCodeGenerationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.JavaCodeGeneration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cJavaKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftCurlyBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cConfigValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cConfigValueConfigValueParserRuleCall_2_1_0 = (RuleCall)cConfigValueAssignment_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		
		//JavaCodeGeneration:
		//	'java' name=STRING ('{'
		//	configValue+=ConfigValue+
		//	'}')?;
		@Override public ParserRule getRule() { return rule; }

		//'java' name=STRING ('{' configValue+=ConfigValue+ '}')?
		public Group getGroup() { return cGroup; }

		//'java'
		public Keyword getJavaKeyword_0() { return cJavaKeyword_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//('{' configValue+=ConfigValue+ '}')?
		public Group getGroup_2() { return cGroup_2; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }

		//configValue+=ConfigValue+
		public Assignment getConfigValueAssignment_2_1() { return cConfigValueAssignment_2_1; }

		//ConfigValue
		public RuleCall getConfigValueConfigValueParserRuleCall_2_1_0() { return cConfigValueConfigValueParserRuleCall_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_2_2() { return cRightCurlyBracketKeyword_2_2; }
	}

	public class E4CodeGenerationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.E4CodeGeneration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cE4Keyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftCurlyBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cConfigValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cConfigValueConfigValueParserRuleCall_2_1_0 = (RuleCall)cConfigValueAssignment_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		
		//E4CodeGeneration:
		//	'e4' name=STRING ('{'
		//	configValue+=ConfigValue+
		//	'}')?;
		@Override public ParserRule getRule() { return rule; }

		//'e4' name=STRING ('{' configValue+=ConfigValue+ '}')?
		public Group getGroup() { return cGroup; }

		//'e4'
		public Keyword getE4Keyword_0() { return cE4Keyword_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//('{' configValue+=ConfigValue+ '}')?
		public Group getGroup_2() { return cGroup_2; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }

		//configValue+=ConfigValue+
		public Assignment getConfigValueAssignment_2_1() { return cConfigValueAssignment_2_1; }

		//ConfigValue
		public RuleCall getConfigValueConfigValueParserRuleCall_2_1_0() { return cConfigValueConfigValueParserRuleCall_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_2_2() { return cRightCurlyBracketKeyword_2_2; }
	}

	public class ConfigValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ConfigValue");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cKeyIDTerminalRuleCall_0_0 = (RuleCall)cKeyAssignment_0.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Assignment cSimpleValueAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
		private final RuleCall cSimpleValueSTRINGTerminalRuleCall_2_0_0 = (RuleCall)cSimpleValueAssignment_2_0.eContents().get(0);
		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
		private final Assignment cChildrenAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
		private final RuleCall cChildrenConfigValueParserRuleCall_2_1_1_0 = (RuleCall)cChildrenAssignment_2_1_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_1_2 = (Keyword)cGroup_2_1.eContents().get(2);
		
		//ConfigValue:
		//	key=ID ':' (simpleValue=STRING | '{'
		//	children+=ConfigValue+
		//	'}');
		@Override public ParserRule getRule() { return rule; }

		//key=ID ':' (simpleValue=STRING | '{' children+=ConfigValue+ '}')
		public Group getGroup() { return cGroup; }

		//key=ID
		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }

		//ID
		public RuleCall getKeyIDTerminalRuleCall_0_0() { return cKeyIDTerminalRuleCall_0_0; }

		//':'
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//simpleValue=STRING | '{' children+=ConfigValue+ '}'
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//simpleValue=STRING
		public Assignment getSimpleValueAssignment_2_0() { return cSimpleValueAssignment_2_0; }

		//STRING
		public RuleCall getSimpleValueSTRINGTerminalRuleCall_2_0_0() { return cSimpleValueSTRINGTerminalRuleCall_2_0_0; }

		//'{' children+=ConfigValue+ '}'
		public Group getGroup_2_1() { return cGroup_2_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2_1_0() { return cLeftCurlyBracketKeyword_2_1_0; }

		//children+=ConfigValue+
		public Assignment getChildrenAssignment_2_1_1() { return cChildrenAssignment_2_1_1; }

		//ConfigValue
		public RuleCall getChildrenConfigValueParserRuleCall_2_1_1_0() { return cChildrenConfigValueParserRuleCall_2_1_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_2_1_2() { return cRightCurlyBracketKeyword_2_1_2; }
	}

	public class ParitioningElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Paritioning");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitioningKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cPartitionsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cPartitionsPartitionParserRuleCall_2_0 = (RuleCall)cPartitionsAssignment_2.eContents().get(0);
		private final Assignment cPartitionerAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cPartitionerPartitionerParserRuleCall_3_0 = (RuleCall)cPartitionerAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		////SWTIntegration:
		////	'swt' '{'
		////		{SWTIntegration}
		////		codegen?='codegeneration'?
		////		e4?='e4'?
		////	'}'
		////;
		//Paritioning:
		//	'partitioning' '{'
		//	partitions+=Partition+
		//	partitioner=Partitioner
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'partitioning' '{' partitions+=Partition+ partitioner=Partitioner '}'
		public Group getGroup() { return cGroup; }

		//'partitioning'
		public Keyword getPartitioningKeyword_0() { return cPartitioningKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//partitions+=Partition+
		public Assignment getPartitionsAssignment_2() { return cPartitionsAssignment_2; }

		//Partition
		public RuleCall getPartitionsPartitionParserRuleCall_2_0() { return cPartitionsPartitionParserRuleCall_2_0; }

		//partitioner=Partitioner
		public Assignment getPartitionerAssignment_3() { return cPartitionerAssignment_3; }

		//Partitioner
		public RuleCall getPartitionerPartitionerParserRuleCall_3_0() { return cPartitionerPartitionerParserRuleCall_3_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class PartitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//Partition:
		//	'partition' name=ID;
		@Override public ParserRule getRule() { return rule; }

		//'partition' name=ID
		public Group getGroup() { return cGroup; }

		//'partition'
		public Keyword getPartitionKeyword_0() { return cPartitionKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
	}

	public class PartitionerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partitioner");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cPartitioner_RuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cParitioner_JSParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Partitioner:
		//	Partitioner_Rule | Paritioner_JS;
		@Override public ParserRule getRule() { return rule; }

		//Partitioner_Rule | Paritioner_JS
		public Alternatives getAlternatives() { return cAlternatives; }

		//Partitioner_Rule
		public RuleCall getPartitioner_RuleParserRuleCall_0() { return cPartitioner_RuleParserRuleCall_0; }

		//Paritioner_JS
		public RuleCall getParitioner_JSParserRuleCall_1() { return cParitioner_JSParserRuleCall_1; }
	}

	public class Paritioner_JSElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Paritioner_JS");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cScriptURIAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cScriptURISTRINGTerminalRuleCall_1_0 = (RuleCall)cScriptURIAssignment_1.eContents().get(0);
		
		//Paritioner_JS:
		//	'script' scriptURI=STRING;
		@Override public ParserRule getRule() { return rule; }

		//'script' scriptURI=STRING
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//scriptURI=STRING
		public Assignment getScriptURIAssignment_1() { return cScriptURIAssignment_1; }

		//STRING
		public RuleCall getScriptURISTRINGTerminalRuleCall_1_0() { return cScriptURISTRINGTerminalRuleCall_1_0; }
	}

	public class Partitioner_RuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partitioner_Rule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cRuleListAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cRuleListPartition_RuleParserRuleCall_2_0 = (RuleCall)cRuleListAssignment_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//Partitioner_Rule:
		//	'rule' '{'
		//	ruleList+=Partition_Rule+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'rule' '{' ruleList+=Partition_Rule+ '}'
		public Group getGroup() { return cGroup; }

		//'rule'
		public Keyword getRuleKeyword_0() { return cRuleKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//ruleList+=Partition_Rule+
		public Assignment getRuleListAssignment_2() { return cRuleListAssignment_2; }

		//Partition_Rule
		public RuleCall getRuleListPartition_RuleParserRuleCall_2_0() { return cRuleListPartition_RuleParserRuleCall_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class Partition_RuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partition_Rule");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cPartition_SingleLineRuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cPartition_MultiLineRuleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cPartition_JSRuleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		//Partition_Rule:
		//	Partition_SingleLineRule | Partition_MultiLineRule | Partition_JSRule;
		@Override public ParserRule getRule() { return rule; }

		//Partition_SingleLineRule | Partition_MultiLineRule | Partition_JSRule
		public Alternatives getAlternatives() { return cAlternatives; }

		//Partition_SingleLineRule
		public RuleCall getPartition_SingleLineRuleParserRuleCall_0() { return cPartition_SingleLineRuleParserRuleCall_0; }

		//Partition_MultiLineRule
		public RuleCall getPartition_MultiLineRuleParserRuleCall_1() { return cPartition_MultiLineRuleParserRuleCall_1; }

		//Partition_JSRule
		public RuleCall getPartition_JSRuleParserRuleCall_2() { return cPartition_JSRuleParserRuleCall_2; }
	}

	public class Partition_SingleLineRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partition_SingleLineRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSingle_lineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cParitionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cParitionPartitionCrossReference_1_0 = (CrossReference)cParitionAssignment_1.eContents().get(0);
		private final RuleCall cParitionPartitionIDTerminalRuleCall_1_0_1 = (RuleCall)cParitionPartitionCrossReference_1_0.eContents().get(1);
		private final Assignment cStartSeqAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cStartSeqSTRINGTerminalRuleCall_2_0 = (RuleCall)cStartSeqAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cPatternKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cStartPatternAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cStartPatternSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cStartPatternAssignment_3_1.eContents().get(0);
		private final Assignment cStartSuffixAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final RuleCall cStartSuffixSTRINGTerminalRuleCall_3_2_0 = (RuleCall)cStartSuffixAssignment_3_2.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cColKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cCheckAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_4_1_0 = (RuleCall)cCheckAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cEqualsSignGreaterThanSignKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cEndSeqAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cEndSeqSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cEndSeqAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cEscapedKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cByKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cEscapeSeqAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cEscapeSeqSTRINGTerminalRuleCall_6_2_0 = (RuleCall)cEscapeSeqAssignment_6_2.eContents().get(0);
		
		//Partition_SingleLineRule:
		//	'single_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
		//	check=Check)? ('=>' endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)?;
		@Override public ParserRule getRule() { return rule; }

		//'single_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
		//check=Check)? ('=>' endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup() { return cGroup; }

		//'single_line'
		public Keyword getSingle_lineKeyword_0() { return cSingle_lineKeyword_0; }

		//parition=[Partition]
		public Assignment getParitionAssignment_1() { return cParitionAssignment_1; }

		//[Partition]
		public CrossReference getParitionPartitionCrossReference_1_0() { return cParitionPartitionCrossReference_1_0; }

		//ID
		public RuleCall getParitionPartitionIDTerminalRuleCall_1_0_1() { return cParitionPartitionIDTerminalRuleCall_1_0_1; }

		//startSeq=STRING
		public Assignment getStartSeqAssignment_2() { return cStartSeqAssignment_2; }

		//STRING
		public RuleCall getStartSeqSTRINGTerminalRuleCall_2_0() { return cStartSeqSTRINGTerminalRuleCall_2_0; }

		//('pattern' startPattern=STRING startSuffix=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//'pattern'
		public Keyword getPatternKeyword_3_0() { return cPatternKeyword_3_0; }

		//startPattern=STRING
		public Assignment getStartPatternAssignment_3_1() { return cStartPatternAssignment_3_1; }

		//STRING
		public RuleCall getStartPatternSTRINGTerminalRuleCall_3_1_0() { return cStartPatternSTRINGTerminalRuleCall_3_1_0; }

		//startSuffix=STRING
		public Assignment getStartSuffixAssignment_3_2() { return cStartSuffixAssignment_3_2; }

		//STRING
		public RuleCall getStartSuffixSTRINGTerminalRuleCall_3_2_0() { return cStartSuffixSTRINGTerminalRuleCall_3_2_0; }

		//('col' check=Check)?
		public Group getGroup_4() { return cGroup_4; }

		//'col'
		public Keyword getColKeyword_4_0() { return cColKeyword_4_0; }

		//check=Check
		public Assignment getCheckAssignment_4_1() { return cCheckAssignment_4_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_4_1_0() { return cCheckCheckParserRuleCall_4_1_0; }

		//('=>' endSeq=STRING?)?
		public Group getGroup_5() { return cGroup_5; }

		//'=>'
		public Keyword getEqualsSignGreaterThanSignKeyword_5_0() { return cEqualsSignGreaterThanSignKeyword_5_0; }

		//endSeq=STRING?
		public Assignment getEndSeqAssignment_5_1() { return cEndSeqAssignment_5_1; }

		//STRING
		public RuleCall getEndSeqSTRINGTerminalRuleCall_5_1_0() { return cEndSeqSTRINGTerminalRuleCall_5_1_0; }

		//('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup_6() { return cGroup_6; }

		//'escaped'
		public Keyword getEscapedKeyword_6_0() { return cEscapedKeyword_6_0; }

		//'by'
		public Keyword getByKeyword_6_1() { return cByKeyword_6_1; }

		//escapeSeq=STRING
		public Assignment getEscapeSeqAssignment_6_2() { return cEscapeSeqAssignment_6_2; }

		//STRING
		public RuleCall getEscapeSeqSTRINGTerminalRuleCall_6_2_0() { return cEscapeSeqSTRINGTerminalRuleCall_6_2_0; }
	}

	public class Partition_MultiLineRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partition_MultiLineRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMulti_lineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cParitionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cParitionPartitionCrossReference_1_0 = (CrossReference)cParitionAssignment_1.eContents().get(0);
		private final RuleCall cParitionPartitionIDTerminalRuleCall_1_0_1 = (RuleCall)cParitionPartitionCrossReference_1_0.eContents().get(1);
		private final Assignment cStartSeqAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cStartSeqSTRINGTerminalRuleCall_2_0 = (RuleCall)cStartSeqAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cPatternKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cStartPatternAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cStartPatternSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cStartPatternAssignment_3_1.eContents().get(0);
		private final Assignment cStartSuffixAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final RuleCall cStartSuffixSTRINGTerminalRuleCall_3_2_0 = (RuleCall)cStartSuffixAssignment_3_2.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cColKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cCheckAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_4_1_0 = (RuleCall)cCheckAssignment_4_1.eContents().get(0);
		private final Keyword cEqualsSignGreaterThanSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cEndSeqAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cEndSeqSTRINGTerminalRuleCall_6_0 = (RuleCall)cEndSeqAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cEscapedKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cByKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Assignment cEscapeSeqAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
		private final RuleCall cEscapeSeqSTRINGTerminalRuleCall_7_2_0 = (RuleCall)cEscapeSeqAssignment_7_2.eContents().get(0);
		
		//Partition_MultiLineRule:
		//	'multi_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
		//	check=Check)? '=>' endSeq=STRING ('escaped' 'by' escapeSeq=STRING)?;
		@Override public ParserRule getRule() { return rule; }

		//'multi_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
		//check=Check)? '=>' endSeq=STRING ('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup() { return cGroup; }

		//'multi_line'
		public Keyword getMulti_lineKeyword_0() { return cMulti_lineKeyword_0; }

		//parition=[Partition]
		public Assignment getParitionAssignment_1() { return cParitionAssignment_1; }

		//[Partition]
		public CrossReference getParitionPartitionCrossReference_1_0() { return cParitionPartitionCrossReference_1_0; }

		//ID
		public RuleCall getParitionPartitionIDTerminalRuleCall_1_0_1() { return cParitionPartitionIDTerminalRuleCall_1_0_1; }

		//startSeq=STRING
		public Assignment getStartSeqAssignment_2() { return cStartSeqAssignment_2; }

		//STRING
		public RuleCall getStartSeqSTRINGTerminalRuleCall_2_0() { return cStartSeqSTRINGTerminalRuleCall_2_0; }

		//('pattern' startPattern=STRING startSuffix=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//'pattern'
		public Keyword getPatternKeyword_3_0() { return cPatternKeyword_3_0; }

		//startPattern=STRING
		public Assignment getStartPatternAssignment_3_1() { return cStartPatternAssignment_3_1; }

		//STRING
		public RuleCall getStartPatternSTRINGTerminalRuleCall_3_1_0() { return cStartPatternSTRINGTerminalRuleCall_3_1_0; }

		//startSuffix=STRING
		public Assignment getStartSuffixAssignment_3_2() { return cStartSuffixAssignment_3_2; }

		//STRING
		public RuleCall getStartSuffixSTRINGTerminalRuleCall_3_2_0() { return cStartSuffixSTRINGTerminalRuleCall_3_2_0; }

		//('col' check=Check)?
		public Group getGroup_4() { return cGroup_4; }

		//'col'
		public Keyword getColKeyword_4_0() { return cColKeyword_4_0; }

		//check=Check
		public Assignment getCheckAssignment_4_1() { return cCheckAssignment_4_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_4_1_0() { return cCheckCheckParserRuleCall_4_1_0; }

		//'=>'
		public Keyword getEqualsSignGreaterThanSignKeyword_5() { return cEqualsSignGreaterThanSignKeyword_5; }

		//endSeq=STRING
		public Assignment getEndSeqAssignment_6() { return cEndSeqAssignment_6; }

		//STRING
		public RuleCall getEndSeqSTRINGTerminalRuleCall_6_0() { return cEndSeqSTRINGTerminalRuleCall_6_0; }

		//('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup_7() { return cGroup_7; }

		//'escaped'
		public Keyword getEscapedKeyword_7_0() { return cEscapedKeyword_7_0; }

		//'by'
		public Keyword getByKeyword_7_1() { return cByKeyword_7_1; }

		//escapeSeq=STRING
		public Assignment getEscapeSeqAssignment_7_2() { return cEscapeSeqAssignment_7_2; }

		//STRING
		public RuleCall getEscapeSeqSTRINGTerminalRuleCall_7_2_0() { return cEscapeSeqSTRINGTerminalRuleCall_7_2_0; }
	}

	public class Partition_JSRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Partition_JSRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cParitionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cParitionPartitionCrossReference_1_0 = (CrossReference)cParitionAssignment_1.eContents().get(0);
		private final RuleCall cParitionPartitionIDTerminalRuleCall_1_0_1 = (RuleCall)cParitionPartitionCrossReference_1_0.eContents().get(1);
		private final Assignment cFileURIAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cFileURISTRINGTerminalRuleCall_2_0 = (RuleCall)cFileURIAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cColKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cCheckAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_3_1_0 = (RuleCall)cCheckAssignment_3_1.eContents().get(0);
		
		//Partition_JSRule:
		//	'script' parition=[Partition] fileURI=STRING ('col' check=Check)?;
		@Override public ParserRule getRule() { return rule; }

		//'script' parition=[Partition] fileURI=STRING ('col' check=Check)?
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//parition=[Partition]
		public Assignment getParitionAssignment_1() { return cParitionAssignment_1; }

		//[Partition]
		public CrossReference getParitionPartitionCrossReference_1_0() { return cParitionPartitionCrossReference_1_0; }

		//ID
		public RuleCall getParitionPartitionIDTerminalRuleCall_1_0_1() { return cParitionPartitionIDTerminalRuleCall_1_0_1; }

		//fileURI=STRING
		public Assignment getFileURIAssignment_2() { return cFileURIAssignment_2; }

		//STRING
		public RuleCall getFileURISTRINGTerminalRuleCall_2_0() { return cFileURISTRINGTerminalRuleCall_2_0; }

		//('col' check=Check)?
		public Group getGroup_3() { return cGroup_3; }

		//'col'
		public Keyword getColKeyword_3_0() { return cColKeyword_3_0; }

		//check=Check
		public Assignment getCheckAssignment_3_1() { return cCheckAssignment_3_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_3_1_0() { return cCheckCheckParserRuleCall_3_1_0; }
	}

	public class LexicalHighlightingElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.LexicalHighlighting");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLexical_highlightingKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cListAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cListLexicalPartitionHighlightingParserRuleCall_2_0 = (RuleCall)cListAssignment_2.eContents().get(0);
		private final Assignment cVistualAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cVistualTokenVisualsParserRuleCall_3_0 = (RuleCall)cVistualAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//// -----------------------------------------------------
		//LexicalHighlighting:
		//	'lexical_highlighting' '{'
		//	list+=LexicalPartitionHighlighting+
		//	vistual=TokenVisuals?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'lexical_highlighting' '{' list+=LexicalPartitionHighlighting+ vistual=TokenVisuals? '}'
		public Group getGroup() { return cGroup; }

		//'lexical_highlighting'
		public Keyword getLexical_highlightingKeyword_0() { return cLexical_highlightingKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//list+=LexicalPartitionHighlighting+
		public Assignment getListAssignment_2() { return cListAssignment_2; }

		//LexicalPartitionHighlighting
		public RuleCall getListLexicalPartitionHighlightingParserRuleCall_2_0() { return cListLexicalPartitionHighlightingParserRuleCall_2_0; }

		//vistual=TokenVisuals?
		public Assignment getVistualAssignment_3() { return cVistualAssignment_3; }

		//TokenVisuals
		public RuleCall getVistualTokenVisualsParserRuleCall_3_0() { return cVistualTokenVisualsParserRuleCall_3_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class TokenVisualsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.TokenVisuals");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cToken_defKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Assignment cTokenVisualsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
		private final RuleCall cTokenVisualsTokenVisualParserRuleCall_2_0_0 = (RuleCall)cTokenVisualsAssignment_2_0.eContents().get(0);
		private final Keyword cSemicolonKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//TokenVisuals:
		//	'token_def' '{' (tokenVisuals+=TokenVisual ';')+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'token_def' '{' (tokenVisuals+=TokenVisual ';')+ '}'
		public Group getGroup() { return cGroup; }

		//'token_def'
		public Keyword getToken_defKeyword_0() { return cToken_defKeyword_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//(tokenVisuals+=TokenVisual ';')+
		public Group getGroup_2() { return cGroup_2; }

		//tokenVisuals+=TokenVisual
		public Assignment getTokenVisualsAssignment_2_0() { return cTokenVisualsAssignment_2_0; }

		//TokenVisual
		public RuleCall getTokenVisualsTokenVisualParserRuleCall_2_0_0() { return cTokenVisualsTokenVisualParserRuleCall_2_0_0; }

		//';'
		public Keyword getSemicolonKeyword_2_1() { return cSemicolonKeyword_2_1; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class TokenVisualElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.TokenVisual");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cTokenAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final CrossReference cTokenTokenCrossReference_0_0 = (CrossReference)cTokenAssignment_0.eContents().get(0);
		private final RuleCall cTokenTokenIDTerminalRuleCall_0_0_1 = (RuleCall)cTokenTokenCrossReference_0_0.eContents().get(1);
		private final Assignment cColorSpecAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cColorSpecSTRINGTerminalRuleCall_1_0 = (RuleCall)cColorSpecAssignment_1.eContents().get(0);
		private final Assignment cBoldAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cBoldBoldKeyword_2_0 = (Keyword)cBoldAssignment_2.eContents().get(0);
		private final Assignment cItalicAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cItalicItalicKeyword_3_0 = (Keyword)cItalicAssignment_3.eContents().get(0);
		
		//TokenVisual:
		//	token=[Token] colorSpec=STRING bold?='bold'? italic?='italic'?;
		@Override public ParserRule getRule() { return rule; }

		//token=[Token] colorSpec=STRING bold?='bold'? italic?='italic'?
		public Group getGroup() { return cGroup; }

		//token=[Token]
		public Assignment getTokenAssignment_0() { return cTokenAssignment_0; }

		//[Token]
		public CrossReference getTokenTokenCrossReference_0_0() { return cTokenTokenCrossReference_0_0; }

		//ID
		public RuleCall getTokenTokenIDTerminalRuleCall_0_0_1() { return cTokenTokenIDTerminalRuleCall_0_0_1; }

		//colorSpec=STRING
		public Assignment getColorSpecAssignment_1() { return cColorSpecAssignment_1; }

		//STRING
		public RuleCall getColorSpecSTRINGTerminalRuleCall_1_0() { return cColorSpecSTRINGTerminalRuleCall_1_0; }

		//bold?='bold'?
		public Assignment getBoldAssignment_2() { return cBoldAssignment_2; }

		//'bold'
		public Keyword getBoldBoldKeyword_2_0() { return cBoldBoldKeyword_2_0; }

		//italic?='italic'?
		public Assignment getItalicAssignment_3() { return cItalicAssignment_3; }

		//'italic'
		public Keyword getItalicItalicKeyword_3_0() { return cItalicItalicKeyword_3_0; }
	}

	public class LexicalPartitionHighlightingElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.LexicalPartitionHighlighting");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cLexicalPartitionHighlighting_RuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cLexicalPartitionHighlighting_JSParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//LexicalPartitionHighlighting:
		//	LexicalPartitionHighlighting_Rule | LexicalPartitionHighlighting_JS;
		@Override public ParserRule getRule() { return rule; }

		//LexicalPartitionHighlighting_Rule | LexicalPartitionHighlighting_JS
		public Alternatives getAlternatives() { return cAlternatives; }

		//LexicalPartitionHighlighting_Rule
		public RuleCall getLexicalPartitionHighlighting_RuleParserRuleCall_0() { return cLexicalPartitionHighlighting_RuleParserRuleCall_0; }

		//LexicalPartitionHighlighting_JS
		public RuleCall getLexicalPartitionHighlighting_JSParserRuleCall_1() { return cLexicalPartitionHighlighting_JSParserRuleCall_1; }
	}

	public class LexicalPartitionHighlighting_JSElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.LexicalPartitionHighlighting_JS");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cPartitionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cPartitionPartitionCrossReference_1_0 = (CrossReference)cPartitionAssignment_1.eContents().get(0);
		private final RuleCall cPartitionPartitionIDTerminalRuleCall_1_0_1 = (RuleCall)cPartitionPartitionCrossReference_1_0.eContents().get(1);
		private final Assignment cScriptURIAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cScriptURISTRINGTerminalRuleCall_2_0 = (RuleCall)cScriptURIAssignment_2.eContents().get(0);
		
		//LexicalPartitionHighlighting_JS:
		//	'script' partition=[Partition] scriptURI=STRING;
		@Override public ParserRule getRule() { return rule; }

		//'script' partition=[Partition] scriptURI=STRING
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//partition=[Partition]
		public Assignment getPartitionAssignment_1() { return cPartitionAssignment_1; }

		//[Partition]
		public CrossReference getPartitionPartitionCrossReference_1_0() { return cPartitionPartitionCrossReference_1_0; }

		//ID
		public RuleCall getPartitionPartitionIDTerminalRuleCall_1_0_1() { return cPartitionPartitionIDTerminalRuleCall_1_0_1; }

		//scriptURI=STRING
		public Assignment getScriptURIAssignment_2() { return cScriptURIAssignment_2; }

		//STRING
		public RuleCall getScriptURISTRINGTerminalRuleCall_2_0() { return cScriptURISTRINGTerminalRuleCall_2_0; }
	}

	public class LexicalPartitionHighlighting_RuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.LexicalPartitionHighlighting_Rule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cPartitionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cPartitionPartitionCrossReference_1_0 = (CrossReference)cPartitionAssignment_1.eContents().get(0);
		private final RuleCall cPartitionPartitionIDTerminalRuleCall_1_0_1 = (RuleCall)cPartitionPartitionCrossReference_1_0.eContents().get(1);
		private final Assignment cWhitespaceAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cWhitespaceWhitespaceRuleParserRuleCall_2_0 = (RuleCall)cWhitespaceAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cTokenListAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cTokenListTokenParserRuleCall_4_0 = (RuleCall)cTokenListAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//LexicalPartitionHighlighting_Rule:
		//	'rule' partition=[Partition] whitespace=WhitespaceRule? '{'
		//	tokenList+=Token+
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//'rule' partition=[Partition] whitespace=WhitespaceRule? '{' tokenList+=Token+ '}'
		public Group getGroup() { return cGroup; }

		//'rule'
		public Keyword getRuleKeyword_0() { return cRuleKeyword_0; }

		//partition=[Partition]
		public Assignment getPartitionAssignment_1() { return cPartitionAssignment_1; }

		//[Partition]
		public CrossReference getPartitionPartitionCrossReference_1_0() { return cPartitionPartitionCrossReference_1_0; }

		//ID
		public RuleCall getPartitionPartitionIDTerminalRuleCall_1_0_1() { return cPartitionPartitionIDTerminalRuleCall_1_0_1; }

		//whitespace=WhitespaceRule?
		public Assignment getWhitespaceAssignment_2() { return cWhitespaceAssignment_2; }

		//WhitespaceRule
		public RuleCall getWhitespaceWhitespaceRuleParserRuleCall_2_0() { return cWhitespaceWhitespaceRuleParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//tokenList+=Token+
		public Assignment getTokenListAssignment_4() { return cTokenListAssignment_4; }

		//Token
		public RuleCall getTokenListTokenParserRuleCall_4_0() { return cTokenListTokenParserRuleCall_4_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class TokenElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Token");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDefaultAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cDefaultDefaultKeyword_0_0 = (Keyword)cDefaultAssignment_0.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftCurlyBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cScannerListAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cScannerListScannerParserRuleCall_2_1_0 = (RuleCall)cScannerListAssignment_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		
		//Token:
		//	default?='default'? name=ID ('{' scannerList+=Scanner+ '}')?;
		@Override public ParserRule getRule() { return rule; }

		//default?='default'? name=ID ('{' scannerList+=Scanner+ '}')?
		public Group getGroup() { return cGroup; }

		//default?='default'?
		public Assignment getDefaultAssignment_0() { return cDefaultAssignment_0; }

		//'default'
		public Keyword getDefaultDefaultKeyword_0_0() { return cDefaultDefaultKeyword_0_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//('{' scannerList+=Scanner+ '}')?
		public Group getGroup_2() { return cGroup_2; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }

		//scannerList+=Scanner+
		public Assignment getScannerListAssignment_2_1() { return cScannerListAssignment_2_1; }

		//Scanner
		public RuleCall getScannerListScannerParserRuleCall_2_1_0() { return cScannerListScannerParserRuleCall_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_2_2() { return cRightCurlyBracketKeyword_2_2; }
	}

	public class ScannerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cScanner_KeywordParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cScanner_RuleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Scanner:
		//	Scanner_Keyword | Scanner_Rule;
		@Override public ParserRule getRule() { return rule; }

		//Scanner_Keyword | Scanner_Rule
		public Alternatives getAlternatives() { return cAlternatives; }

		//Scanner_Keyword
		public RuleCall getScanner_KeywordParserRuleCall_0() { return cScanner_KeywordParserRuleCall_0; }

		//Scanner_Rule
		public RuleCall getScanner_RuleParserRuleCall_1() { return cScanner_RuleParserRuleCall_1; }
	}

	public class Scanner_KeywordElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_Keyword");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cKeywordsKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cKeywordsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cKeywordsKeywordParserRuleCall_2_0 = (RuleCall)cKeywordsAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cKeywordsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cKeywordsKeywordParserRuleCall_3_1_0 = (RuleCall)cKeywordsAssignment_3_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cEnabledifKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cEnabledIfAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cEnabledIfScannerConditionParserRuleCall_5_1_0 = (RuleCall)cEnabledIfAssignment_5_1.eContents().get(0);
		
		//Scanner_Keyword:
		//	'keywords' '[' keywords+=Keyword (',' keywords+=Keyword)* ']' ('enabledif' enabledIf=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'keywords' '[' keywords+=Keyword (',' keywords+=Keyword)* ']' ('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'keywords'
		public Keyword getKeywordsKeyword_0() { return cKeywordsKeyword_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }

		//keywords+=Keyword
		public Assignment getKeywordsAssignment_2() { return cKeywordsAssignment_2; }

		//Keyword
		public RuleCall getKeywordsKeywordParserRuleCall_2_0() { return cKeywordsKeywordParserRuleCall_2_0; }

		//(',' keywords+=Keyword)*
		public Group getGroup_3() { return cGroup_3; }

		//','
		public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }

		//keywords+=Keyword
		public Assignment getKeywordsAssignment_3_1() { return cKeywordsAssignment_3_1; }

		//Keyword
		public RuleCall getKeywordsKeywordParserRuleCall_3_1_0() { return cKeywordsKeywordParserRuleCall_3_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }

		//('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup_5() { return cGroup_5; }

		//'enabledif'
		public Keyword getEnabledifKeyword_5_0() { return cEnabledifKeyword_5_0; }

		//enabledIf=ScannerCondition
		public Assignment getEnabledIfAssignment_5_1() { return cEnabledIfAssignment_5_1; }

		//ScannerCondition
		public RuleCall getEnabledIfScannerConditionParserRuleCall_5_1_0() { return cEnabledIfScannerConditionParserRuleCall_5_1_0; }
	}

	public class KeywordElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Keyword");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cNameSTRINGTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cSinceKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cVersionAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cVersionSTRINGTerminalRuleCall_1_1_0 = (RuleCall)cVersionAssignment_1_1.eContents().get(0);
		
		//Keyword:
		//	name=STRING ('since' version=STRING)?;
		@Override public ParserRule getRule() { return rule; }

		//name=STRING ('since' version=STRING)?
		public Group getGroup() { return cGroup; }

		//name=STRING
		public Assignment getNameAssignment_0() { return cNameAssignment_0; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_0_0() { return cNameSTRINGTerminalRuleCall_0_0; }

		//('since' version=STRING)?
		public Group getGroup_1() { return cGroup_1; }

		//'since'
		public Keyword getSinceKeyword_1_0() { return cSinceKeyword_1_0; }

		//version=STRING
		public Assignment getVersionAssignment_1_1() { return cVersionAssignment_1_1; }

		//STRING
		public RuleCall getVersionSTRINGTerminalRuleCall_1_1_0() { return cVersionSTRINGTerminalRuleCall_1_1_0; }
	}

	public class Scanner_RuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_Rule");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cScanner_SingleLineRuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cScanner_MultiLineRuleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cScanner_CharacterRuleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cScanner_JSRuleParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cScanner_PatternRuleParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		
		//Scanner_Rule:
		//	Scanner_SingleLineRule | Scanner_MultiLineRule | Scanner_CharacterRule | Scanner_JSRule | Scanner_PatternRule;
		@Override public ParserRule getRule() { return rule; }

		//Scanner_SingleLineRule | Scanner_MultiLineRule | Scanner_CharacterRule | Scanner_JSRule | Scanner_PatternRule
		public Alternatives getAlternatives() { return cAlternatives; }

		//Scanner_SingleLineRule
		public RuleCall getScanner_SingleLineRuleParserRuleCall_0() { return cScanner_SingleLineRuleParserRuleCall_0; }

		//Scanner_MultiLineRule
		public RuleCall getScanner_MultiLineRuleParserRuleCall_1() { return cScanner_MultiLineRuleParserRuleCall_1; }

		//Scanner_CharacterRule
		public RuleCall getScanner_CharacterRuleParserRuleCall_2() { return cScanner_CharacterRuleParserRuleCall_2; }

		//Scanner_JSRule
		public RuleCall getScanner_JSRuleParserRuleCall_3() { return cScanner_JSRuleParserRuleCall_3; }

		//Scanner_PatternRule
		public RuleCall getScanner_PatternRuleParserRuleCall_4() { return cScanner_PatternRuleParserRuleCall_4; }
	}

	public class Scanner_SingleLineRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_SingleLineRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cSingle_lineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cStartSeqAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cStartSeqSTRINGTerminalRuleCall_1_0 = (RuleCall)cStartSeqAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cPatternKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cStartPatternAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cStartPatternSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cStartPatternAssignment_2_1.eContents().get(0);
		private final Assignment cStartSuffixAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
		private final RuleCall cStartSuffixSTRINGTerminalRuleCall_2_2_0 = (RuleCall)cStartSuffixAssignment_2_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cColKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cCheckAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_3_1_0 = (RuleCall)cCheckAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cEqualsSignGreaterThanSignKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cEndSeqAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cEndSeqSTRINGTerminalRuleCall_4_1_0 = (RuleCall)cEndSeqAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cEscapedKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cByKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Assignment cEscapeSeqAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
		private final RuleCall cEscapeSeqSTRINGTerminalRuleCall_5_2_0 = (RuleCall)cEscapeSeqAssignment_5_2.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cEnabledifKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cEnabledIfAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cEnabledIfScannerConditionParserRuleCall_6_1_0 = (RuleCall)cEnabledIfAssignment_6_1.eContents().get(0);
		
		//Scanner_SingleLineRule:
		//	'single_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? ('=>'
		//	endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'single_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? ('=>'
		//endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'single_line'
		public Keyword getSingle_lineKeyword_0() { return cSingle_lineKeyword_0; }

		//startSeq=STRING
		public Assignment getStartSeqAssignment_1() { return cStartSeqAssignment_1; }

		//STRING
		public RuleCall getStartSeqSTRINGTerminalRuleCall_1_0() { return cStartSeqSTRINGTerminalRuleCall_1_0; }

		//('pattern' startPattern=STRING startSuffix=STRING)?
		public Group getGroup_2() { return cGroup_2; }

		//'pattern'
		public Keyword getPatternKeyword_2_0() { return cPatternKeyword_2_0; }

		//startPattern=STRING
		public Assignment getStartPatternAssignment_2_1() { return cStartPatternAssignment_2_1; }

		//STRING
		public RuleCall getStartPatternSTRINGTerminalRuleCall_2_1_0() { return cStartPatternSTRINGTerminalRuleCall_2_1_0; }

		//startSuffix=STRING
		public Assignment getStartSuffixAssignment_2_2() { return cStartSuffixAssignment_2_2; }

		//STRING
		public RuleCall getStartSuffixSTRINGTerminalRuleCall_2_2_0() { return cStartSuffixSTRINGTerminalRuleCall_2_2_0; }

		//('col' check=Check)?
		public Group getGroup_3() { return cGroup_3; }

		//'col'
		public Keyword getColKeyword_3_0() { return cColKeyword_3_0; }

		//check=Check
		public Assignment getCheckAssignment_3_1() { return cCheckAssignment_3_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_3_1_0() { return cCheckCheckParserRuleCall_3_1_0; }

		//('=>' endSeq=STRING?)?
		public Group getGroup_4() { return cGroup_4; }

		//'=>'
		public Keyword getEqualsSignGreaterThanSignKeyword_4_0() { return cEqualsSignGreaterThanSignKeyword_4_0; }

		//endSeq=STRING?
		public Assignment getEndSeqAssignment_4_1() { return cEndSeqAssignment_4_1; }

		//STRING
		public RuleCall getEndSeqSTRINGTerminalRuleCall_4_1_0() { return cEndSeqSTRINGTerminalRuleCall_4_1_0; }

		//('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup_5() { return cGroup_5; }

		//'escaped'
		public Keyword getEscapedKeyword_5_0() { return cEscapedKeyword_5_0; }

		//'by'
		public Keyword getByKeyword_5_1() { return cByKeyword_5_1; }

		//escapeSeq=STRING
		public Assignment getEscapeSeqAssignment_5_2() { return cEscapeSeqAssignment_5_2; }

		//STRING
		public RuleCall getEscapeSeqSTRINGTerminalRuleCall_5_2_0() { return cEscapeSeqSTRINGTerminalRuleCall_5_2_0; }

		//('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup_6() { return cGroup_6; }

		//'enabledif'
		public Keyword getEnabledifKeyword_6_0() { return cEnabledifKeyword_6_0; }

		//enabledIf=ScannerCondition
		public Assignment getEnabledIfAssignment_6_1() { return cEnabledIfAssignment_6_1; }

		//ScannerCondition
		public RuleCall getEnabledIfScannerConditionParserRuleCall_6_1_0() { return cEnabledIfScannerConditionParserRuleCall_6_1_0; }
	}

	public class Scanner_MultiLineRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_MultiLineRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMulti_lineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cStartSeqAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cStartSeqSTRINGTerminalRuleCall_1_0 = (RuleCall)cStartSeqAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cPatternKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cStartPatternAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cStartPatternSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cStartPatternAssignment_2_1.eContents().get(0);
		private final Assignment cStartSuffixAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
		private final RuleCall cStartSuffixSTRINGTerminalRuleCall_2_2_0 = (RuleCall)cStartSuffixAssignment_2_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cColKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cCheckAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_3_1_0 = (RuleCall)cCheckAssignment_3_1.eContents().get(0);
		private final Keyword cEqualsSignGreaterThanSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cEndSeqAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cEndSeqSTRINGTerminalRuleCall_5_0 = (RuleCall)cEndSeqAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cEscapedKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cByKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cEscapeSeqAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cEscapeSeqSTRINGTerminalRuleCall_6_2_0 = (RuleCall)cEscapeSeqAssignment_6_2.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cEnabledifKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cEnabledIfAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cEnabledIfScannerConditionParserRuleCall_7_1_0 = (RuleCall)cEnabledIfAssignment_7_1.eContents().get(0);
		
		//Scanner_MultiLineRule:
		//	'multi_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? '=>'
		//	endSeq=STRING ('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'multi_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? '=>' endSeq=STRING
		//('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'multi_line'
		public Keyword getMulti_lineKeyword_0() { return cMulti_lineKeyword_0; }

		//startSeq=STRING
		public Assignment getStartSeqAssignment_1() { return cStartSeqAssignment_1; }

		//STRING
		public RuleCall getStartSeqSTRINGTerminalRuleCall_1_0() { return cStartSeqSTRINGTerminalRuleCall_1_0; }

		//('pattern' startPattern=STRING startSuffix=STRING)?
		public Group getGroup_2() { return cGroup_2; }

		//'pattern'
		public Keyword getPatternKeyword_2_0() { return cPatternKeyword_2_0; }

		//startPattern=STRING
		public Assignment getStartPatternAssignment_2_1() { return cStartPatternAssignment_2_1; }

		//STRING
		public RuleCall getStartPatternSTRINGTerminalRuleCall_2_1_0() { return cStartPatternSTRINGTerminalRuleCall_2_1_0; }

		//startSuffix=STRING
		public Assignment getStartSuffixAssignment_2_2() { return cStartSuffixAssignment_2_2; }

		//STRING
		public RuleCall getStartSuffixSTRINGTerminalRuleCall_2_2_0() { return cStartSuffixSTRINGTerminalRuleCall_2_2_0; }

		//('col' check=Check)?
		public Group getGroup_3() { return cGroup_3; }

		//'col'
		public Keyword getColKeyword_3_0() { return cColKeyword_3_0; }

		//check=Check
		public Assignment getCheckAssignment_3_1() { return cCheckAssignment_3_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_3_1_0() { return cCheckCheckParserRuleCall_3_1_0; }

		//'=>'
		public Keyword getEqualsSignGreaterThanSignKeyword_4() { return cEqualsSignGreaterThanSignKeyword_4; }

		//endSeq=STRING
		public Assignment getEndSeqAssignment_5() { return cEndSeqAssignment_5; }

		//STRING
		public RuleCall getEndSeqSTRINGTerminalRuleCall_5_0() { return cEndSeqSTRINGTerminalRuleCall_5_0; }

		//('escaped' 'by' escapeSeq=STRING)?
		public Group getGroup_6() { return cGroup_6; }

		//'escaped'
		public Keyword getEscapedKeyword_6_0() { return cEscapedKeyword_6_0; }

		//'by'
		public Keyword getByKeyword_6_1() { return cByKeyword_6_1; }

		//escapeSeq=STRING
		public Assignment getEscapeSeqAssignment_6_2() { return cEscapeSeqAssignment_6_2; }

		//STRING
		public RuleCall getEscapeSeqSTRINGTerminalRuleCall_6_2_0() { return cEscapeSeqSTRINGTerminalRuleCall_6_2_0; }

		//('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup_7() { return cGroup_7; }

		//'enabledif'
		public Keyword getEnabledifKeyword_7_0() { return cEnabledifKeyword_7_0; }

		//enabledIf=ScannerCondition
		public Assignment getEnabledIfAssignment_7_1() { return cEnabledIfAssignment_7_1; }

		//ScannerCondition
		public RuleCall getEnabledIfScannerConditionParserRuleCall_7_1_0() { return cEnabledIfScannerConditionParserRuleCall_7_1_0; }
	}

	public class Scanner_PatternRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_PatternRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPatternKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cStartPatternAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cStartPatternSTRINGTerminalRuleCall_1_0 = (RuleCall)cStartPatternAssignment_1.eContents().get(0);
		private final Assignment cLengthAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cLengthINTTerminalRuleCall_2_0 = (RuleCall)cLengthAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cColKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cCheckAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_3_1_0 = (RuleCall)cCheckAssignment_3_1.eContents().get(0);
		private final Keyword cContainingKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cContentPatternAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cContentPatternSTRINGTerminalRuleCall_5_0 = (RuleCall)cContentPatternAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cEnabledifKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cEnabledIfAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cEnabledIfScannerConditionParserRuleCall_6_1_0 = (RuleCall)cEnabledIfAssignment_6_1.eContents().get(0);
		
		//Scanner_PatternRule:
		//	'pattern' startPattern=STRING length=INT? ('col' check=Check)? 'containing' contentPattern=STRING ('enabledif'
		//	enabledIf=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'pattern' startPattern=STRING length=INT? ('col' check=Check)? 'containing' contentPattern=STRING ('enabledif'
		//enabledIf=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'pattern'
		public Keyword getPatternKeyword_0() { return cPatternKeyword_0; }

		//startPattern=STRING
		public Assignment getStartPatternAssignment_1() { return cStartPatternAssignment_1; }

		//STRING
		public RuleCall getStartPatternSTRINGTerminalRuleCall_1_0() { return cStartPatternSTRINGTerminalRuleCall_1_0; }

		//length=INT?
		public Assignment getLengthAssignment_2() { return cLengthAssignment_2; }

		//INT
		public RuleCall getLengthINTTerminalRuleCall_2_0() { return cLengthINTTerminalRuleCall_2_0; }

		//('col' check=Check)?
		public Group getGroup_3() { return cGroup_3; }

		//'col'
		public Keyword getColKeyword_3_0() { return cColKeyword_3_0; }

		//check=Check
		public Assignment getCheckAssignment_3_1() { return cCheckAssignment_3_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_3_1_0() { return cCheckCheckParserRuleCall_3_1_0; }

		//'containing'
		public Keyword getContainingKeyword_4() { return cContainingKeyword_4; }

		//contentPattern=STRING
		public Assignment getContentPatternAssignment_5() { return cContentPatternAssignment_5; }

		//STRING
		public RuleCall getContentPatternSTRINGTerminalRuleCall_5_0() { return cContentPatternSTRINGTerminalRuleCall_5_0; }

		//('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup_6() { return cGroup_6; }

		//'enabledif'
		public Keyword getEnabledifKeyword_6_0() { return cEnabledifKeyword_6_0; }

		//enabledIf=ScannerCondition
		public Assignment getEnabledIfAssignment_6_1() { return cEnabledIfAssignment_6_1; }

		//ScannerCondition
		public RuleCall getEnabledIfScannerConditionParserRuleCall_6_1_0() { return cEnabledIfScannerConditionParserRuleCall_6_1_0; }
	}

	public class Scanner_CharacterRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_CharacterRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCharacterKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cCharactersAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCharactersSTRINGTerminalRuleCall_2_0 = (RuleCall)cCharactersAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cCharactersAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharactersSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cCharactersAssignment_3_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cColKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cCheckAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_5_1_0 = (RuleCall)cCheckAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cEnabledifKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cEnabledIfAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cEnabledIfScannerConditionParserRuleCall_6_1_0 = (RuleCall)cEnabledIfAssignment_6_1.eContents().get(0);
		
		//Scanner_CharacterRule:
		//	'character' '[' characters+=STRING (',' characters+=STRING)* ']' ('col' check=Check)? ('enabledif'
		//	enabledIf=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'character' '[' characters+=STRING (',' characters+=STRING)* ']' ('col' check=Check)? ('enabledif'
		//enabledIf=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'character'
		public Keyword getCharacterKeyword_0() { return cCharacterKeyword_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }

		//characters+=STRING
		public Assignment getCharactersAssignment_2() { return cCharactersAssignment_2; }

		//STRING
		public RuleCall getCharactersSTRINGTerminalRuleCall_2_0() { return cCharactersSTRINGTerminalRuleCall_2_0; }

		//(',' characters+=STRING)*
		public Group getGroup_3() { return cGroup_3; }

		//','
		public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }

		//characters+=STRING
		public Assignment getCharactersAssignment_3_1() { return cCharactersAssignment_3_1; }

		//STRING
		public RuleCall getCharactersSTRINGTerminalRuleCall_3_1_0() { return cCharactersSTRINGTerminalRuleCall_3_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }

		//('col' check=Check)?
		public Group getGroup_5() { return cGroup_5; }

		//'col'
		public Keyword getColKeyword_5_0() { return cColKeyword_5_0; }

		//check=Check
		public Assignment getCheckAssignment_5_1() { return cCheckAssignment_5_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_5_1_0() { return cCheckCheckParserRuleCall_5_1_0; }

		//('enabledif' enabledIf=ScannerCondition)?
		public Group getGroup_6() { return cGroup_6; }

		//'enabledif'
		public Keyword getEnabledifKeyword_6_0() { return cEnabledifKeyword_6_0; }

		//enabledIf=ScannerCondition
		public Assignment getEnabledIfAssignment_6_1() { return cEnabledIfAssignment_6_1; }

		//ScannerCondition
		public RuleCall getEnabledIfScannerConditionParserRuleCall_6_1_0() { return cEnabledIfScannerConditionParserRuleCall_6_1_0; }
	}

	public class Scanner_JSRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Scanner_JSRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cFileURIAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cFileURISTRINGTerminalRuleCall_1_0 = (RuleCall)cFileURIAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cColKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cCheckAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cCheckCheckParserRuleCall_2_1_0 = (RuleCall)cCheckAssignment_2_1.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cEnabledifKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cConditionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cConditionScannerConditionParserRuleCall_3_1_0 = (RuleCall)cConditionAssignment_3_1.eContents().get(0);
		
		//Scanner_JSRule:
		//	'script' fileURI=STRING ('col' check=Check)? ('enabledif' condition=ScannerCondition)?;
		@Override public ParserRule getRule() { return rule; }

		//'script' fileURI=STRING ('col' check=Check)? ('enabledif' condition=ScannerCondition)?
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//fileURI=STRING
		public Assignment getFileURIAssignment_1() { return cFileURIAssignment_1; }

		//STRING
		public RuleCall getFileURISTRINGTerminalRuleCall_1_0() { return cFileURISTRINGTerminalRuleCall_1_0; }

		//('col' check=Check)?
		public Group getGroup_2() { return cGroup_2; }

		//'col'
		public Keyword getColKeyword_2_0() { return cColKeyword_2_0; }

		//check=Check
		public Assignment getCheckAssignment_2_1() { return cCheckAssignment_2_1; }

		//Check
		public RuleCall getCheckCheckParserRuleCall_2_1_0() { return cCheckCheckParserRuleCall_2_1_0; }

		//('enabledif' condition=ScannerCondition)?
		public Group getGroup_3() { return cGroup_3; }

		//'enabledif'
		public Keyword getEnabledifKeyword_3_0() { return cEnabledifKeyword_3_0; }

		//condition=ScannerCondition
		public Assignment getConditionAssignment_3_1() { return cConditionAssignment_3_1; }

		//ScannerCondition
		public RuleCall getConditionScannerConditionParserRuleCall_3_1_0() { return cConditionScannerConditionParserRuleCall_3_1_0; }
	}

	public class ScannerConditionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ScannerCondition");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cScannerConditionExistsParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cScannerConditionEqualsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cScannerConditionJsParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cScannerConditionCompositeParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		
		//ScannerCondition:
		//	ScannerConditionExists | ScannerConditionEquals | ScannerConditionJs | ScannerConditionComposite;
		@Override public ParserRule getRule() { return rule; }

		//ScannerConditionExists | ScannerConditionEquals | ScannerConditionJs | ScannerConditionComposite
		public Alternatives getAlternatives() { return cAlternatives; }

		//ScannerConditionExists
		public RuleCall getScannerConditionExistsParserRuleCall_0() { return cScannerConditionExistsParserRuleCall_0; }

		//ScannerConditionEquals
		public RuleCall getScannerConditionEqualsParserRuleCall_1() { return cScannerConditionEqualsParserRuleCall_1; }

		//ScannerConditionJs
		public RuleCall getScannerConditionJsParserRuleCall_2() { return cScannerConditionJsParserRuleCall_2; }

		//ScannerConditionComposite
		public RuleCall getScannerConditionCompositeParserRuleCall_3() { return cScannerConditionCompositeParserRuleCall_3; }
	}

	public class ScannerConditionCompositeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ScannerConditionComposite");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Alternatives cOpAlternatives_0_0 = (Alternatives)cOpAssignment_0.eContents().get(0);
		private final Keyword cOpAndKeyword_0_0_0 = (Keyword)cOpAlternatives_0_0.eContents().get(0);
		private final Keyword cOpOrKeyword_0_0_1 = (Keyword)cOpAlternatives_0_0.eContents().get(1);
		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cElementsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cElementsScannerConditionParserRuleCall_2_0 = (RuleCall)cElementsAssignment_2.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//ScannerConditionComposite:
		//	op=('and' | 'or') '(' elements+=ScannerCondition ')';
		@Override public ParserRule getRule() { return rule; }

		//op=('and' | 'or') '(' elements+=ScannerCondition ')'
		public Group getGroup() { return cGroup; }

		//op=('and' | 'or')
		public Assignment getOpAssignment_0() { return cOpAssignment_0; }

		//('and' | 'or')
		public Alternatives getOpAlternatives_0_0() { return cOpAlternatives_0_0; }

		//'and'
		public Keyword getOpAndKeyword_0_0_0() { return cOpAndKeyword_0_0_0; }

		//'or'
		public Keyword getOpOrKeyword_0_0_1() { return cOpOrKeyword_0_0_1; }

		//'('
		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }

		//elements+=ScannerCondition
		public Assignment getElementsAssignment_2() { return cElementsAssignment_2; }

		//ScannerCondition
		public RuleCall getElementsScannerConditionParserRuleCall_2_0() { return cElementsScannerConditionParserRuleCall_2_0; }

		//')'
		public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
	}

	public class ScannerConditionExistsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ScannerConditionExists");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cKeySTRINGTerminalRuleCall_0_0 = (RuleCall)cKeyAssignment_0.eContents().get(0);
		private final Keyword cExistsKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//ScannerConditionExists:
		//	key=STRING 'exists';
		@Override public ParserRule getRule() { return rule; }

		//key=STRING 'exists'
		public Group getGroup() { return cGroup; }

		//key=STRING
		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }

		//STRING
		public RuleCall getKeySTRINGTerminalRuleCall_0_0() { return cKeySTRINGTerminalRuleCall_0_0; }

		//'exists'
		public Keyword getExistsKeyword_1() { return cExistsKeyword_1; }
	}

	public class ScannerConditionEqualsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ScannerConditionEquals");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cKeySTRINGTerminalRuleCall_0_0 = (RuleCall)cKeyAssignment_0.eContents().get(0);
		private final Keyword cEqKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
		
		//ScannerConditionEquals:
		//	key=STRING 'eq' value=STRING;
		@Override public ParserRule getRule() { return rule; }

		//key=STRING 'eq' value=STRING
		public Group getGroup() { return cGroup; }

		//key=STRING
		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }

		//STRING
		public RuleCall getKeySTRINGTerminalRuleCall_0_0() { return cKeySTRINGTerminalRuleCall_0_0; }

		//'eq'
		public Keyword getEqKeyword_1() { return cEqKeyword_1; }

		//value=STRING
		public Assignment getValueAssignment_2() { return cValueAssignment_2; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
	}

	public class ScannerConditionJsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.ScannerConditionJs");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
		
		//ScannerConditionJs:
		//	'script' value=STRING;
		@Override public ParserRule getRule() { return rule; }

		//'script' value=STRING
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//value=STRING
		public Assignment getValueAssignment_1() { return cValueAssignment_1; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_1_0() { return cValueSTRINGTerminalRuleCall_1_0; }
	}

	public class CheckElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Check");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cRangeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEqualsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Check:
		//	Range | Equals;
		@Override public ParserRule getRule() { return rule; }

		//Range | Equals
		public Alternatives getAlternatives() { return cAlternatives; }

		//Range
		public RuleCall getRangeParserRuleCall_0() { return cRangeParserRuleCall_0; }

		//Equals
		public RuleCall getEqualsParserRuleCall_1() { return cEqualsParserRuleCall_1; }
	}

	public class EqualsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Equals");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEqKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cValueINTTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
		
		//Equals:
		//	'eq' value=INT;
		@Override public ParserRule getRule() { return rule; }

		//'eq' value=INT
		public Group getGroup() { return cGroup; }

		//'eq'
		public Keyword getEqKeyword_0() { return cEqKeyword_0; }

		//value=INT
		public Assignment getValueAssignment_1() { return cValueAssignment_1; }

		//INT
		public RuleCall getValueINTTerminalRuleCall_1_0() { return cValueINTTerminalRuleCall_1_0; }
	}

	public class RangeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.Range");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cInKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cLtInclAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Alternatives cLtInclAlternatives_1_0 = (Alternatives)cLtInclAssignment_1.eContents().get(0);
		private final Keyword cLtInclLeftParenthesisKeyword_1_0_0 = (Keyword)cLtInclAlternatives_1_0.eContents().get(0);
		private final Keyword cLtInclLeftSquareBracketKeyword_1_0_1 = (Keyword)cLtInclAlternatives_1_0.eContents().get(1);
		private final Assignment cMinValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cMinValueINTTerminalRuleCall_2_0 = (RuleCall)cMinValueAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cMaxValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cMaxValueINTTerminalRuleCall_4_0 = (RuleCall)cMaxValueAssignment_4.eContents().get(0);
		private final Assignment cGtInclAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final Alternatives cGtInclAlternatives_5_0 = (Alternatives)cGtInclAssignment_5.eContents().get(0);
		private final Keyword cGtInclRightParenthesisKeyword_5_0_0 = (Keyword)cGtInclAlternatives_5_0.eContents().get(0);
		private final Keyword cGtInclRightSquareBracketKeyword_5_0_1 = (Keyword)cGtInclAlternatives_5_0.eContents().get(1);
		
		//Range:
		//	'in' ltIncl=('(' | '[') minValue+=INT? ',' maxValue+=INT? gtIncl=(')' | ']');
		@Override public ParserRule getRule() { return rule; }

		//'in' ltIncl=('(' | '[') minValue+=INT? ',' maxValue+=INT? gtIncl=(')' | ']')
		public Group getGroup() { return cGroup; }

		//'in'
		public Keyword getInKeyword_0() { return cInKeyword_0; }

		//ltIncl=('(' | '[')
		public Assignment getLtInclAssignment_1() { return cLtInclAssignment_1; }

		//('(' | '[')
		public Alternatives getLtInclAlternatives_1_0() { return cLtInclAlternatives_1_0; }

		//'('
		public Keyword getLtInclLeftParenthesisKeyword_1_0_0() { return cLtInclLeftParenthesisKeyword_1_0_0; }

		//'['
		public Keyword getLtInclLeftSquareBracketKeyword_1_0_1() { return cLtInclLeftSquareBracketKeyword_1_0_1; }

		//minValue+=INT?
		public Assignment getMinValueAssignment_2() { return cMinValueAssignment_2; }

		//INT
		public RuleCall getMinValueINTTerminalRuleCall_2_0() { return cMinValueINTTerminalRuleCall_2_0; }

		//','
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//maxValue+=INT?
		public Assignment getMaxValueAssignment_4() { return cMaxValueAssignment_4; }

		//INT
		public RuleCall getMaxValueINTTerminalRuleCall_4_0() { return cMaxValueINTTerminalRuleCall_4_0; }

		//gtIncl=(')' | ']')
		public Assignment getGtInclAssignment_5() { return cGtInclAssignment_5; }

		//(')' | ']')
		public Alternatives getGtInclAlternatives_5_0() { return cGtInclAlternatives_5_0; }

		//')'
		public Keyword getGtInclRightParenthesisKeyword_5_0_0() { return cGtInclRightParenthesisKeyword_5_0_0; }

		//']'
		public Keyword getGtInclRightSquareBracketKeyword_5_0_1() { return cGtInclRightSquareBracketKeyword_5_0_1; }
	}

	public class WhitespaceRuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.code.editor.ldef.LDef.WhitespaceRule");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cWhitespaceKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0);
		private final Assignment cCharactersAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1);
		private final RuleCall cCharactersSTRINGTerminalRuleCall_1_0_1_0 = (RuleCall)cCharactersAssignment_1_0_1.eContents().get(0);
		private final Group cGroup_1_0_2 = (Group)cGroup_1_0.eContents().get(2);
		private final Keyword cCommaKeyword_1_0_2_0 = (Keyword)cGroup_1_0_2.eContents().get(0);
		private final Assignment cCharactersAssignment_1_0_2_1 = (Assignment)cGroup_1_0_2.eContents().get(1);
		private final RuleCall cCharactersSTRINGTerminalRuleCall_1_0_2_1_0 = (RuleCall)cCharactersAssignment_1_0_2_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_1_0_3 = (Keyword)cGroup_1_0.eContents().get(3);
		private final Assignment cJavawhitespaceAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
		private final Keyword cJavawhitespaceJavawhitespaceKeyword_1_1_0 = (Keyword)cJavawhitespaceAssignment_1_1.eContents().get(0);
		private final Assignment cFileURIAssignment_1_2 = (Assignment)cAlternatives_1.eContents().get(2);
		private final RuleCall cFileURISTRINGTerminalRuleCall_1_2_0 = (RuleCall)cFileURIAssignment_1_2.eContents().get(0);
		
		//WhitespaceRule:
		//	'whitespace' ('[' characters+=STRING (',' characters+=STRING)* ']' | javawhitespace?='javawhitespace' |
		//	fileURI=STRING);
		@Override public ParserRule getRule() { return rule; }

		//'whitespace' ('[' characters+=STRING (',' characters+=STRING)* ']' | javawhitespace?='javawhitespace' | fileURI=STRING)
		public Group getGroup() { return cGroup; }

		//'whitespace'
		public Keyword getWhitespaceKeyword_0() { return cWhitespaceKeyword_0; }

		//'[' characters+=STRING (',' characters+=STRING)* ']' | javawhitespace?='javawhitespace' | fileURI=STRING
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//'[' characters+=STRING (',' characters+=STRING)* ']'
		public Group getGroup_1_0() { return cGroup_1_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_1_0_0() { return cLeftSquareBracketKeyword_1_0_0; }

		//characters+=STRING
		public Assignment getCharactersAssignment_1_0_1() { return cCharactersAssignment_1_0_1; }

		//STRING
		public RuleCall getCharactersSTRINGTerminalRuleCall_1_0_1_0() { return cCharactersSTRINGTerminalRuleCall_1_0_1_0; }

		//(',' characters+=STRING)*
		public Group getGroup_1_0_2() { return cGroup_1_0_2; }

		//','
		public Keyword getCommaKeyword_1_0_2_0() { return cCommaKeyword_1_0_2_0; }

		//characters+=STRING
		public Assignment getCharactersAssignment_1_0_2_1() { return cCharactersAssignment_1_0_2_1; }

		//STRING
		public RuleCall getCharactersSTRINGTerminalRuleCall_1_0_2_1_0() { return cCharactersSTRINGTerminalRuleCall_1_0_2_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_1_0_3() { return cRightSquareBracketKeyword_1_0_3; }

		//javawhitespace?='javawhitespace'
		public Assignment getJavawhitespaceAssignment_1_1() { return cJavawhitespaceAssignment_1_1; }

		//'javawhitespace'
		public Keyword getJavawhitespaceJavawhitespaceKeyword_1_1_0() { return cJavawhitespaceJavawhitespaceKeyword_1_1_0; }

		//fileURI=STRING
		public Assignment getFileURIAssignment_1_2() { return cFileURIAssignment_1_2; }

		//STRING
		public RuleCall getFileURISTRINGTerminalRuleCall_1_2_0() { return cFileURISTRINGTerminalRuleCall_1_2_0; }
	}
	
	
	private final RootElements pRoot;
	private final ValidIDElements pValidID;
	private final QualifiedNameElements pQualifiedName;
	private final QualifiedNameWithWildCardElements pQualifiedNameWithWildCard;
	private final ImportElements pImport;
	private final LanguageDefElements pLanguageDef;
	private final IntegrationElements pIntegration;
	private final CodeIntegrationElements pCodeIntegration;
	private final JavaFXIntegrationElements pJavaFXIntegration;
	private final CodegenerationElements pCodegeneration;
	private final JavaCodeGenerationElements pJavaCodeGeneration;
	private final E4CodeGenerationElements pE4CodeGeneration;
	private final ConfigValueElements pConfigValue;
	private final ParitioningElements pParitioning;
	private final PartitionElements pPartition;
	private final PartitionerElements pPartitioner;
	private final Paritioner_JSElements pParitioner_JS;
	private final Partitioner_RuleElements pPartitioner_Rule;
	private final Partition_RuleElements pPartition_Rule;
	private final Partition_SingleLineRuleElements pPartition_SingleLineRule;
	private final Partition_MultiLineRuleElements pPartition_MultiLineRule;
	private final Partition_JSRuleElements pPartition_JSRule;
	private final LexicalHighlightingElements pLexicalHighlighting;
	private final TokenVisualsElements pTokenVisuals;
	private final TokenVisualElements pTokenVisual;
	private final LexicalPartitionHighlightingElements pLexicalPartitionHighlighting;
	private final LexicalPartitionHighlighting_JSElements pLexicalPartitionHighlighting_JS;
	private final LexicalPartitionHighlighting_RuleElements pLexicalPartitionHighlighting_Rule;
	private final TokenElements pToken;
	private final ScannerElements pScanner;
	private final Scanner_KeywordElements pScanner_Keyword;
	private final KeywordElements pKeyword;
	private final Scanner_RuleElements pScanner_Rule;
	private final Scanner_SingleLineRuleElements pScanner_SingleLineRule;
	private final Scanner_MultiLineRuleElements pScanner_MultiLineRule;
	private final Scanner_PatternRuleElements pScanner_PatternRule;
	private final Scanner_CharacterRuleElements pScanner_CharacterRule;
	private final Scanner_JSRuleElements pScanner_JSRule;
	private final ScannerConditionElements pScannerCondition;
	private final ScannerConditionCompositeElements pScannerConditionComposite;
	private final ScannerConditionExistsElements pScannerConditionExists;
	private final ScannerConditionEqualsElements pScannerConditionEquals;
	private final ScannerConditionJsElements pScannerConditionJs;
	private final CheckElements pCheck;
	private final EqualsElements pEquals;
	private final RangeElements pRange;
	private final WhitespaceRuleElements pWhitespaceRule;
	
	private final Grammar grammar;

	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public LDefGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pRoot = new RootElements();
		this.pValidID = new ValidIDElements();
		this.pQualifiedName = new QualifiedNameElements();
		this.pQualifiedNameWithWildCard = new QualifiedNameWithWildCardElements();
		this.pImport = new ImportElements();
		this.pLanguageDef = new LanguageDefElements();
		this.pIntegration = new IntegrationElements();
		this.pCodeIntegration = new CodeIntegrationElements();
		this.pJavaFXIntegration = new JavaFXIntegrationElements();
		this.pCodegeneration = new CodegenerationElements();
		this.pJavaCodeGeneration = new JavaCodeGenerationElements();
		this.pE4CodeGeneration = new E4CodeGenerationElements();
		this.pConfigValue = new ConfigValueElements();
		this.pParitioning = new ParitioningElements();
		this.pPartition = new PartitionElements();
		this.pPartitioner = new PartitionerElements();
		this.pParitioner_JS = new Paritioner_JSElements();
		this.pPartitioner_Rule = new Partitioner_RuleElements();
		this.pPartition_Rule = new Partition_RuleElements();
		this.pPartition_SingleLineRule = new Partition_SingleLineRuleElements();
		this.pPartition_MultiLineRule = new Partition_MultiLineRuleElements();
		this.pPartition_JSRule = new Partition_JSRuleElements();
		this.pLexicalHighlighting = new LexicalHighlightingElements();
		this.pTokenVisuals = new TokenVisualsElements();
		this.pTokenVisual = new TokenVisualElements();
		this.pLexicalPartitionHighlighting = new LexicalPartitionHighlightingElements();
		this.pLexicalPartitionHighlighting_JS = new LexicalPartitionHighlighting_JSElements();
		this.pLexicalPartitionHighlighting_Rule = new LexicalPartitionHighlighting_RuleElements();
		this.pToken = new TokenElements();
		this.pScanner = new ScannerElements();
		this.pScanner_Keyword = new Scanner_KeywordElements();
		this.pKeyword = new KeywordElements();
		this.pScanner_Rule = new Scanner_RuleElements();
		this.pScanner_SingleLineRule = new Scanner_SingleLineRuleElements();
		this.pScanner_MultiLineRule = new Scanner_MultiLineRuleElements();
		this.pScanner_PatternRule = new Scanner_PatternRuleElements();
		this.pScanner_CharacterRule = new Scanner_CharacterRuleElements();
		this.pScanner_JSRule = new Scanner_JSRuleElements();
		this.pScannerCondition = new ScannerConditionElements();
		this.pScannerConditionComposite = new ScannerConditionCompositeElements();
		this.pScannerConditionExists = new ScannerConditionExistsElements();
		this.pScannerConditionEquals = new ScannerConditionEqualsElements();
		this.pScannerConditionJs = new ScannerConditionJsElements();
		this.pCheck = new CheckElements();
		this.pEquals = new EqualsElements();
		this.pRange = new RangeElements();
		this.pWhitespaceRule = new WhitespaceRuleElements();
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.eclipse.fx.code.editor.ldef.LDef".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Root:
	//	'package' name=QualifiedName
	//	imports+=Import*
	//	languageDefinition=LanguageDef;
	public RootElements getRootAccess() {
		return pRoot;
	}
	
	public ParserRule getRootRule() {
		return getRootAccess().getRule();
	}

	//ValidID:
	//	ID;
	public ValidIDElements getValidIDAccess() {
		return pValidID;
	}
	
	public ParserRule getValidIDRule() {
		return getValidIDAccess().getRule();
	}

	//QualifiedName:
	//	ValidID (=> '.' ValidID)*;
	public QualifiedNameElements getQualifiedNameAccess() {
		return pQualifiedName;
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//QualifiedNameWithWildCard:
	//	QualifiedName ('.' '*')?;
	public QualifiedNameWithWildCardElements getQualifiedNameWithWildCardAccess() {
		return pQualifiedNameWithWildCard;
	}
	
	public ParserRule getQualifiedNameWithWildCardRule() {
		return getQualifiedNameWithWildCardAccess().getRule();
	}

	//Import:
	//	'import' importedNamespace=QualifiedNameWithWildCard;
	public ImportElements getImportAccess() {
		return pImport;
	}
	
	public ParserRule getImportRule() {
		return getImportAccess().getRule();
	}

	//LanguageDef:
	//	name=ID '{'
	//	paritioning=Paritioning
	//	lexicalHighlighting=LexicalHighlighting
	//	integration=Integration?
	//	'}';
	public LanguageDefElements getLanguageDefAccess() {
		return pLanguageDef;
	}
	
	public ParserRule getLanguageDefRule() {
		return getLanguageDefAccess().getRule();
	}

	//Integration:
	//	'integration' '{'
	//	codeIntegrationList+=CodeIntegration+
	//	'}';
	public IntegrationElements getIntegrationAccess() {
		return pIntegration;
	}
	
	public ParserRule getIntegrationRule() {
		return getIntegrationAccess().getRule();
	}

	//CodeIntegration:
	//	JavaFXIntegration // | SWTIntegration
	//;
	public CodeIntegrationElements getCodeIntegrationAccess() {
		return pCodeIntegration;
	}
	
	public ParserRule getCodeIntegrationRule() {
		return getCodeIntegrationAccess().getRule();
	}

	//JavaFXIntegration:
	//	'javafx' '{'
	//	codegenerationList+=Codegeneration+
	//	'}';
	public JavaFXIntegrationElements getJavaFXIntegrationAccess() {
		return pJavaFXIntegration;
	}
	
	public ParserRule getJavaFXIntegrationRule() {
		return getJavaFXIntegrationAccess().getRule();
	}

	//Codegeneration:
	//	JavaCodeGeneration | E4CodeGeneration;
	public CodegenerationElements getCodegenerationAccess() {
		return pCodegeneration;
	}
	
	public ParserRule getCodegenerationRule() {
		return getCodegenerationAccess().getRule();
	}

	//JavaCodeGeneration:
	//	'java' name=STRING ('{'
	//	configValue+=ConfigValue+
	//	'}')?;
	public JavaCodeGenerationElements getJavaCodeGenerationAccess() {
		return pJavaCodeGeneration;
	}
	
	public ParserRule getJavaCodeGenerationRule() {
		return getJavaCodeGenerationAccess().getRule();
	}

	//E4CodeGeneration:
	//	'e4' name=STRING ('{'
	//	configValue+=ConfigValue+
	//	'}')?;
	public E4CodeGenerationElements getE4CodeGenerationAccess() {
		return pE4CodeGeneration;
	}
	
	public ParserRule getE4CodeGenerationRule() {
		return getE4CodeGenerationAccess().getRule();
	}

	//ConfigValue:
	//	key=ID ':' (simpleValue=STRING | '{'
	//	children+=ConfigValue+
	//	'}');
	public ConfigValueElements getConfigValueAccess() {
		return pConfigValue;
	}
	
	public ParserRule getConfigValueRule() {
		return getConfigValueAccess().getRule();
	}

	////SWTIntegration:
	////	'swt' '{'
	////		{SWTIntegration}
	////		codegen?='codegeneration'?
	////		e4?='e4'?
	////	'}'
	////;
	//Paritioning:
	//	'partitioning' '{'
	//	partitions+=Partition+
	//	partitioner=Partitioner
	//	'}';
	public ParitioningElements getParitioningAccess() {
		return pParitioning;
	}
	
	public ParserRule getParitioningRule() {
		return getParitioningAccess().getRule();
	}

	//Partition:
	//	'partition' name=ID;
	public PartitionElements getPartitionAccess() {
		return pPartition;
	}
	
	public ParserRule getPartitionRule() {
		return getPartitionAccess().getRule();
	}

	//Partitioner:
	//	Partitioner_Rule | Paritioner_JS;
	public PartitionerElements getPartitionerAccess() {
		return pPartitioner;
	}
	
	public ParserRule getPartitionerRule() {
		return getPartitionerAccess().getRule();
	}

	//Paritioner_JS:
	//	'script' scriptURI=STRING;
	public Paritioner_JSElements getParitioner_JSAccess() {
		return pParitioner_JS;
	}
	
	public ParserRule getParitioner_JSRule() {
		return getParitioner_JSAccess().getRule();
	}

	//Partitioner_Rule:
	//	'rule' '{'
	//	ruleList+=Partition_Rule+
	//	'}';
	public Partitioner_RuleElements getPartitioner_RuleAccess() {
		return pPartitioner_Rule;
	}
	
	public ParserRule getPartitioner_RuleRule() {
		return getPartitioner_RuleAccess().getRule();
	}

	//Partition_Rule:
	//	Partition_SingleLineRule | Partition_MultiLineRule | Partition_JSRule;
	public Partition_RuleElements getPartition_RuleAccess() {
		return pPartition_Rule;
	}
	
	public ParserRule getPartition_RuleRule() {
		return getPartition_RuleAccess().getRule();
	}

	//Partition_SingleLineRule:
	//	'single_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
	//	check=Check)? ('=>' endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)?;
	public Partition_SingleLineRuleElements getPartition_SingleLineRuleAccess() {
		return pPartition_SingleLineRule;
	}
	
	public ParserRule getPartition_SingleLineRuleRule() {
		return getPartition_SingleLineRuleAccess().getRule();
	}

	//Partition_MultiLineRule:
	//	'multi_line' parition=[Partition] startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col'
	//	check=Check)? '=>' endSeq=STRING ('escaped' 'by' escapeSeq=STRING)?;
	public Partition_MultiLineRuleElements getPartition_MultiLineRuleAccess() {
		return pPartition_MultiLineRule;
	}
	
	public ParserRule getPartition_MultiLineRuleRule() {
		return getPartition_MultiLineRuleAccess().getRule();
	}

	//Partition_JSRule:
	//	'script' parition=[Partition] fileURI=STRING ('col' check=Check)?;
	public Partition_JSRuleElements getPartition_JSRuleAccess() {
		return pPartition_JSRule;
	}
	
	public ParserRule getPartition_JSRuleRule() {
		return getPartition_JSRuleAccess().getRule();
	}

	//// -----------------------------------------------------
	//LexicalHighlighting:
	//	'lexical_highlighting' '{'
	//	list+=LexicalPartitionHighlighting+
	//	vistual=TokenVisuals?
	//	'}';
	public LexicalHighlightingElements getLexicalHighlightingAccess() {
		return pLexicalHighlighting;
	}
	
	public ParserRule getLexicalHighlightingRule() {
		return getLexicalHighlightingAccess().getRule();
	}

	//TokenVisuals:
	//	'token_def' '{' (tokenVisuals+=TokenVisual ';')+
	//	'}';
	public TokenVisualsElements getTokenVisualsAccess() {
		return pTokenVisuals;
	}
	
	public ParserRule getTokenVisualsRule() {
		return getTokenVisualsAccess().getRule();
	}

	//TokenVisual:
	//	token=[Token] colorSpec=STRING bold?='bold'? italic?='italic'?;
	public TokenVisualElements getTokenVisualAccess() {
		return pTokenVisual;
	}
	
	public ParserRule getTokenVisualRule() {
		return getTokenVisualAccess().getRule();
	}

	//LexicalPartitionHighlighting:
	//	LexicalPartitionHighlighting_Rule | LexicalPartitionHighlighting_JS;
	public LexicalPartitionHighlightingElements getLexicalPartitionHighlightingAccess() {
		return pLexicalPartitionHighlighting;
	}
	
	public ParserRule getLexicalPartitionHighlightingRule() {
		return getLexicalPartitionHighlightingAccess().getRule();
	}

	//LexicalPartitionHighlighting_JS:
	//	'script' partition=[Partition] scriptURI=STRING;
	public LexicalPartitionHighlighting_JSElements getLexicalPartitionHighlighting_JSAccess() {
		return pLexicalPartitionHighlighting_JS;
	}
	
	public ParserRule getLexicalPartitionHighlighting_JSRule() {
		return getLexicalPartitionHighlighting_JSAccess().getRule();
	}

	//LexicalPartitionHighlighting_Rule:
	//	'rule' partition=[Partition] whitespace=WhitespaceRule? '{'
	//	tokenList+=Token+
	//	'}';
	public LexicalPartitionHighlighting_RuleElements getLexicalPartitionHighlighting_RuleAccess() {
		return pLexicalPartitionHighlighting_Rule;
	}
	
	public ParserRule getLexicalPartitionHighlighting_RuleRule() {
		return getLexicalPartitionHighlighting_RuleAccess().getRule();
	}

	//Token:
	//	default?='default'? name=ID ('{' scannerList+=Scanner+ '}')?;
	public TokenElements getTokenAccess() {
		return pToken;
	}
	
	public ParserRule getTokenRule() {
		return getTokenAccess().getRule();
	}

	//Scanner:
	//	Scanner_Keyword | Scanner_Rule;
	public ScannerElements getScannerAccess() {
		return pScanner;
	}
	
	public ParserRule getScannerRule() {
		return getScannerAccess().getRule();
	}

	//Scanner_Keyword:
	//	'keywords' '[' keywords+=Keyword (',' keywords+=Keyword)* ']' ('enabledif' enabledIf=ScannerCondition)?;
	public Scanner_KeywordElements getScanner_KeywordAccess() {
		return pScanner_Keyword;
	}
	
	public ParserRule getScanner_KeywordRule() {
		return getScanner_KeywordAccess().getRule();
	}

	//Keyword:
	//	name=STRING ('since' version=STRING)?;
	public KeywordElements getKeywordAccess() {
		return pKeyword;
	}
	
	public ParserRule getKeywordRule() {
		return getKeywordAccess().getRule();
	}

	//Scanner_Rule:
	//	Scanner_SingleLineRule | Scanner_MultiLineRule | Scanner_CharacterRule | Scanner_JSRule | Scanner_PatternRule;
	public Scanner_RuleElements getScanner_RuleAccess() {
		return pScanner_Rule;
	}
	
	public ParserRule getScanner_RuleRule() {
		return getScanner_RuleAccess().getRule();
	}

	//Scanner_SingleLineRule:
	//	'single_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? ('=>'
	//	endSeq=STRING?)? ('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?;
	public Scanner_SingleLineRuleElements getScanner_SingleLineRuleAccess() {
		return pScanner_SingleLineRule;
	}
	
	public ParserRule getScanner_SingleLineRuleRule() {
		return getScanner_SingleLineRuleAccess().getRule();
	}

	//Scanner_MultiLineRule:
	//	'multi_line' startSeq=STRING ('pattern' startPattern=STRING startSuffix=STRING)? ('col' check=Check)? '=>'
	//	endSeq=STRING ('escaped' 'by' escapeSeq=STRING)? ('enabledif' enabledIf=ScannerCondition)?;
	public Scanner_MultiLineRuleElements getScanner_MultiLineRuleAccess() {
		return pScanner_MultiLineRule;
	}
	
	public ParserRule getScanner_MultiLineRuleRule() {
		return getScanner_MultiLineRuleAccess().getRule();
	}

	//Scanner_PatternRule:
	//	'pattern' startPattern=STRING length=INT? ('col' check=Check)? 'containing' contentPattern=STRING ('enabledif'
	//	enabledIf=ScannerCondition)?;
	public Scanner_PatternRuleElements getScanner_PatternRuleAccess() {
		return pScanner_PatternRule;
	}
	
	public ParserRule getScanner_PatternRuleRule() {
		return getScanner_PatternRuleAccess().getRule();
	}

	//Scanner_CharacterRule:
	//	'character' '[' characters+=STRING (',' characters+=STRING)* ']' ('col' check=Check)? ('enabledif'
	//	enabledIf=ScannerCondition)?;
	public Scanner_CharacterRuleElements getScanner_CharacterRuleAccess() {
		return pScanner_CharacterRule;
	}
	
	public ParserRule getScanner_CharacterRuleRule() {
		return getScanner_CharacterRuleAccess().getRule();
	}

	//Scanner_JSRule:
	//	'script' fileURI=STRING ('col' check=Check)? ('enabledif' condition=ScannerCondition)?;
	public Scanner_JSRuleElements getScanner_JSRuleAccess() {
		return pScanner_JSRule;
	}
	
	public ParserRule getScanner_JSRuleRule() {
		return getScanner_JSRuleAccess().getRule();
	}

	//ScannerCondition:
	//	ScannerConditionExists | ScannerConditionEquals | ScannerConditionJs | ScannerConditionComposite;
	public ScannerConditionElements getScannerConditionAccess() {
		return pScannerCondition;
	}
	
	public ParserRule getScannerConditionRule() {
		return getScannerConditionAccess().getRule();
	}

	//ScannerConditionComposite:
	//	op=('and' | 'or') '(' elements+=ScannerCondition ')';
	public ScannerConditionCompositeElements getScannerConditionCompositeAccess() {
		return pScannerConditionComposite;
	}
	
	public ParserRule getScannerConditionCompositeRule() {
		return getScannerConditionCompositeAccess().getRule();
	}

	//ScannerConditionExists:
	//	key=STRING 'exists';
	public ScannerConditionExistsElements getScannerConditionExistsAccess() {
		return pScannerConditionExists;
	}
	
	public ParserRule getScannerConditionExistsRule() {
		return getScannerConditionExistsAccess().getRule();
	}

	//ScannerConditionEquals:
	//	key=STRING 'eq' value=STRING;
	public ScannerConditionEqualsElements getScannerConditionEqualsAccess() {
		return pScannerConditionEquals;
	}
	
	public ParserRule getScannerConditionEqualsRule() {
		return getScannerConditionEqualsAccess().getRule();
	}

	//ScannerConditionJs:
	//	'script' value=STRING;
	public ScannerConditionJsElements getScannerConditionJsAccess() {
		return pScannerConditionJs;
	}
	
	public ParserRule getScannerConditionJsRule() {
		return getScannerConditionJsAccess().getRule();
	}

	//Check:
	//	Range | Equals;
	public CheckElements getCheckAccess() {
		return pCheck;
	}
	
	public ParserRule getCheckRule() {
		return getCheckAccess().getRule();
	}

	//Equals:
	//	'eq' value=INT;
	public EqualsElements getEqualsAccess() {
		return pEquals;
	}
	
	public ParserRule getEqualsRule() {
		return getEqualsAccess().getRule();
	}

	//Range:
	//	'in' ltIncl=('(' | '[') minValue+=INT? ',' maxValue+=INT? gtIncl=(')' | ']');
	public RangeElements getRangeAccess() {
		return pRange;
	}
	
	public ParserRule getRangeRule() {
		return getRangeAccess().getRule();
	}

	//WhitespaceRule:
	//	'whitespace' ('[' characters+=STRING (',' characters+=STRING)* ']' | javawhitespace?='javawhitespace' |
	//	fileURI=STRING);
	public WhitespaceRuleElements getWhitespaceRuleAccess() {
		return pWhitespaceRule;
	}
	
	public ParserRule getWhitespaceRuleRule() {
		return getWhitespaceRuleAccess().getRule();
	}

	//terminal ID:
	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//	'0'..'9'+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"' |
	//	"'" ('\\' . | !('\\' | "'"))* "'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	'/*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
